/*
 * planificacion.c
 *
 *  Created on: 13/10/2011
 *      Author: utn_so
 */


#include "libPPD.h"


t_CHS pasarACHS(int32_t sector)
{
	t_CHS sectorTransformado;
	int resto;

	sectorTransformado.C = sector / cantidadSectores;
	resto = sector % cantidadSectores;
	sectorTransformado.H = 0;
	resto = resto % cantidadSectores;
	sectorTransformado.S = resto;
	return sectorTransformado;
}

int32_t numeroPista (int32_t sector)
{
	int32_t pista;
	t_CHS sectorCHS;
	sectorCHS = pasarACHS (sector);
	pista = sectorCHS.C;
	return pista;
}

int32_t planificacion (t_lista *listaPedidos)
{
	int32_t i=0;
	int sector;
	int32_t sectorC;
	t_lista *listaMayores;
	t_lista *listaMenores;
	tCabezal cabezal;
	cabezal.posActual.C = 20;

	listaMayores = crearLista();
	listaMenores = crearLista();

	while (listaPedidos->head !=0)
	{
		sector = sacarDeLaLista (listaPedidos, i);

		t_nodo *nuevoNodo = malloc( sizeof(t_nodo) );
		nuevoNodo->datos = sector;
		nuevoNodo->next = NULL;

		sectorC = numeroPista (sector);

		if (sectorC >= (cabezal.posActual.C))
			ordenarLista (listaMayores, nuevoNodo);
		else
			ordenarLista (listaMenores, nuevoNodo);

	}

	listaPedidos = unirListas(listaMayores, listaMenores);

	return Retorno_OK;
}
